草庐IT

c++ - 问题返回 CArray

全部标签

windows - 将函数的值返回给批处理脚本中的函数

这可能与SO、dostips和ss64中的几个问题重复。我所做的研究让我在函数中寻找_scope_。但我的解决方案简单直接,但问题仍然存在SETLOCAL和ENDLOCAL背后的真正含义>context如何在批处理脚本中工作ex(goto)2>nul为什么(goto)用大括号括起来(在dostips中解释)这是我到目前为止编写的用于将文件从一个地方复制到另一个地方的代码。我的目标是:研究批处理脚本的范围和上下文代码重用@echooffsetlocalEnableDelayedExpansiongoto:main:mainsetlocalset_app=testset_base=C:/w

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

我维护一个生成二进制数据的命令行实用程序。请求时,数据可以重定向到stdout。这在stdout被重定向到管道或文件时有效,但当stdout是一个控制台时,情况就不太一样了,因为它会垃圾控制台。为了保护用户免受此类错误,程序必须检测stdout是否是控制台,并在是时退出。现在,这并不是什么新鲜事,快速浏览一下Internet就会发现多种解决方案。主要缺点是没有“通用”方法,VisualStudio需要自己的风格。我用于Visual的控制台检测器有一个缺陷:它没有检测到stdout是一个控制台当控制台由mingw提供时,我认为这意味着它是mintty。这里是相关的代码部分:#ifdefi

c - 如何在 C 中的 DLL 中执行线程

我创建了一个运行3个工作线程的DLL,主线程处于循环中等待线程完成。线程已创建,但未执行线程。我尝试在使用CreateThread()创建的函数中设置MessageBox函数,但该框没有出现。我也尝试过调试,CreateThread()的返回值有效,因此线程被创建。BOOLWINAPIDllMain(){main();return1;}intmain(){HANDLEh1,h2,h3;h1=CreateThread(first)...h2=CreateThread(second)...h3=CreateThread(third)...WaitForSingleObject(h3,INF

windows - 简单的 jq 过滤器在 Windows shell 中不起作用,各种引用问题

我非常努力地让Windowsshell与jq一起工作,但惨遭失败。我想要这种类型的东西工作echo'["a","b","c"]'|.\Downloads\jq.exe-r'{"data":map({"{#SNAME}":.})}'但是我得到一个错误:jq:error:syntaxerror,unexpected'.'(Windowscmdshellquotingissues?)at,line1:如果我只是做echo'["a","b","c"]'|.\Downloads\jq.exe-r'.'然后很高兴,但我很快就添加了其他字符,例如echo'["a","b","c"]'|.\Downl

python - ctypes MessageBoxW 返回意外的中文字符

我使用以下代码来显示弹出消息ifplatform.system()=='Windows':importctypesdefmessage_box(title,text,style):returnctypes.windll.user32.MessageBoxW(0,text,title,style)ifplatform.system()=='Windows':message_box('Error','PhatsinhloiUnicode,kiemtrachitiettrong%s'%common.ERR_LOG_FILE,0)当我的应用程序在Windows7中运行时,弹出窗口包含所有意外的

c++ - DuplicateHandle() 是否进行任何进程间通信 (IPC),如果不进行,为什么要使用目标参数?

我正在寻找DuplicateHandle()非常困惑。第三个和第四个参数hTargetProcessHandle和lpTargetHandle似乎暗示这个API函数进行某种形式的进程间通信,但我在网上阅读的内容似乎暗示(没有直接说)实际上这个函数不能与外部的任何东西通信它自己的进程的地址空间,如果你真的想说将本地进程句柄复制到另一个进程,你必须自己手动完成。所以有人可以可怜我并明确地告诉我这个函数本身是否有任何IPC吗?另外,如果它不执行任何IPC,那么这两个参数的意义何在?如果没有发送数据并且此函数的输出对其他进程不可见,怎么会有“目标”?起初我以为我可以调用GetCurrentPr

c - 句柄无效

尝试使用SetConsoleScreenBufferSize但失败并显示“句柄无效”。在最后一个错误。将发布所有代码,但这里有一些要点:使用它来调整缓冲区大小:intTGHandleResizeEvent(structTGHandle*tgHandle,INPUT_RECORDrecord){if(record.EventType==WINDOW_BUFFER_SIZE_EVENT){WINDOW_BUFFER_SIZE_RECORDsize=record.Event.WindowBufferSizeEvent;sizeTGDrawBuffer(&tgHandle->drawBuffe

c - WM_SYSCOLORCHANGE 消息的含义

来自documentation:WM_SYSCOLORCHANGEmessageissenttoalltop-levelwindowswhenachangeismadetoasystemcolorsetting.Applicationsthathavebrushesusingtheexistingsystemcolorsshoulddeletethosebrushesandre-createthemusingthenewsystemcolors.声明全局变量HBRUSHg_hBackground=NULL;在WM_CREATE消息处理程序中创建背景画笔caseWM_CREATE:g_h

windows - 是什么导致 WriteFile 返回错误 38 (ERROR_HANDLE_EOF)?

什么会导致WriteFile返回错误38(ERROR_HANDLE_EOF,已到达文件末尾)?本例中的"file"是一个邮槽。我的程序的工作方式是我有一个创建多个子进程的进程(作为Windows服务运行)。每个child都打开一个同名的邮槽,以便将状态信息发送回其parent。在我的小规模测试中,这工作正常,但我看到了当我有多个进程时的情况运行(如16)我收到此错误。下面的代码显示了我如何在子进程中打开和写入邮槽。可能是因为父级读取邮槽的速度不够快?有没有办法增加邮槽的容量,从而永远不会到达文件末尾?我真的不明白邮槽怎么会变满,只要因为有磁盘空间(有很多)。chargLocalSlot

c - 我在哪里放置用于 Windows、Mac 和 Linux 的 C 库

我已经查看了几个地方以找出在Mac上放置文件的位置,似乎将它们放置到/usr/lib/libmylib.dylib中。和/usr/include/mylib.h是正确的位置,而不是在HOME目录或/usr/local/lib中.(这是针对用户在其计算机上安装的东西)。请告诉我这是否正确。然后我剩下的问题是在Windows和Linux上放置C库的等效(即最佳)位置。寻找here对于Windows表示%windir%\system32或%SystemRoot%\winsxs.但随后他们似乎开始说,由于多种原因,它仍然是一个糟糕的地方。所以我不确定。然后剩下的就是如何为Linux做.似乎与M